package com.peas.platform.module.icims.expenditure.setting.adapter.repository.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.*;

// 报账费用类型附件
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_expenditure_feetype_file`")
public class ExpenditureFeetypeFilePo extends BasePo {

    // 报账单费用类型
    // 枚举取值:ExpenditureReimbursementFeetype
    @Comment(value = "报账单费用类型")
    @NotBlank(message = "报账单费用类型不能为空")
    @Size(max = 20, message = "报账单费用类型不能超过20个字符")
    @TableField(value = "`expenditure_feetype`", jdbcType = JdbcType.VARCHAR)
    private String expenditureFeetype;

    // 业务环节
    // 1:办公费、2:其他
    // 枚举取值:ExpenditureFeetypeFileStage
    @Comment(value = "业务环节")
    @NotBlank(message = "业务环节不能为空")
    @Size(max = 20, message = "业务环节不能超过20个字符")
    @TableField(value = "`stage`", jdbcType = JdbcType.VARCHAR)
    private String stage;

    // 控制级别
    // 1:必须提供、2:满足时必须提供、3:发生时提供
    // 枚举取值:ExpenditureFeetypeFileControl
    @Comment(value = "控制级别")
    @NotBlank(message = "控制级别不能为空")
    @Size(max = 20, message = "控制级别不能超过20个字符")
    @TableField(value = "`control`", jdbcType = JdbcType.VARCHAR)
    private String control;

    // 排序权重
    @Comment(value = "排序权重")
    @NotNull(message = "排序权重不能为空")
    @TableField(value = "`weight`", jdbcType = JdbcType.INTEGER)
    private Integer weight;

    // 附件名称
    @Comment(value = "附件名称")
    @NotBlank(message = "附件名称不能为空")
    @Size(max = 200, message = "附件名称不能超过200个字符")
    @TableField(value = "`filename`", jdbcType = JdbcType.VARCHAR)
    private String filename;

    // 备注
    @Comment(value = "备注")
    @Size(max = 500, message = "备注不能超过500个字符")
    @TableField(value = "`remark`", jdbcType = JdbcType.VARCHAR)
    private String remark;

    // 是否发票附件
    // 1:是、0:否
    // 枚举取值:CommonYesNo
    @Comment(value = "是否发票附件")
    @Size(max = 200, message = "是否发票附件不能超过200个字符")
    @TableField(value = "`need_invoice`", jdbcType = JdbcType.VARCHAR)
    private String needInvoice;

}
